API: gdk: gdk_display_get_device_state() => gdk_device_get_position()
authorBenjamin Otte <otte@redhat.com>
Mon, 27 Dec 2010 17:03:38 +0000 (18:03 +0100)
committerBenjamin Otte <otte@redhat.com>
Mon, 27 Dec 2010 17:46:41 +0000 (18:46 +0100)
The API was not display-specific, but belonged to the device. Also, we
didn't find a user of the modifier mask, so we dropped it.

12 files changed:
docs/reference/gdk/gdk3-sections.txt
gdk/gdk.symbols
gdk/gdkdevice.c
gdk/gdkdevice.h
gdk/gdkdisplay.c
gdk/gdkdisplay.h
gtk/gtkcolorsel.c
gtk/gtkdnd.c
gtk/gtkhandlebox.c
gtk/gtkmenu.c
gtk/gtknotebook.c
gtk/gtkwindow.c

index 6aa124debfe695cc1784587a42a86d4a86641604..b1141d67696ac17d1578a442d56381db5f0c4fc6 100644 (file)
@@ -124,7 +124,6 @@ gdk_display_add_client_message_filter
 gdk_display_set_double_click_time
 gdk_display_set_double_click_distance
 gdk_display_get_pointer
-gdk_display_get_device_state
 gdk_display_list_devices
 gdk_display_get_window_at_pointer
 gdk_display_get_window_at_device_position
@@ -705,6 +704,7 @@ gdk_device_ungrab
 
 <SUBSECTION>
 gdk_device_get_state
+gdk_device_get_position
 gdk_device_get_history
 gdk_device_free_history
 GdkTimeCoord
index 7da506bee929181f5c409dca14417ff9fa617f40..7545fe20672fcfbfa2cdafe52f0ee2d7215bb778 100644 (file)
@@ -59,6 +59,7 @@ gdk_device_get_mode
 gdk_device_get_name
 gdk_device_get_n_axes
 gdk_device_get_n_keys
+gdk_device_get_position
 gdk_device_get_source
 gdk_device_get_state
 gdk_device_get_type G_GNUC_CONST
@@ -89,7 +90,6 @@ gdk_display_get_default_cursor_size
 gdk_display_get_default_group
 gdk_display_get_default_screen
 gdk_display_get_device_manager
-gdk_display_get_device_state
 gdk_display_get_event
 gdk_display_get_maximal_cursor_size
 gdk_display_get_name
index 714c8cd1233b46a9474846fba6a423e077e00e5a..39af300213e95d33995f0d2d0f80754bf40dcd84 100644 (file)
@@ -398,6 +398,43 @@ gdk_device_get_state (GdkDevice       *device,
     GDK_DEVICE_GET_CLASS (device)->get_state (device, window, axes, mask);
 }
 
+/**
+ * gdk_device_get_position:
+ * @device: pointer device to query status about.
+ * @screen: (out) (transfer none) (allow-none): location to store the #GdkScreen
+ *          the @device is on, or %NULL.
+ * @x: (out) (allow-none): location to store root window X coordinate of @device, or %NULL.
+ * @y: (out) (allow-none): location to store root window Y coordinate of @device, or %NULL.
+ *
+ * Gets the current location of @device.
+ *
+ * Since: 3.0
+ **/
+void
+gdk_device_get_position (GdkDevice        *device,
+                         GdkScreen       **screen,
+                         gint             *x,
+                         gint             *y)
+{
+  GdkScreen *tmp_screen;
+  GdkDisplay *display;
+  gint tmp_x, tmp_y;
+  GdkModifierType tmp_mask;
+
+  g_return_if_fail (GDK_IS_DEVICE (device));
+  g_return_if_fail (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD);
+
+  display = gdk_device_get_display (device);
+  display->device_hooks->get_device_state (display, device, &tmp_screen, &tmp_x, &tmp_y, &tmp_mask);
+
+  if (screen)
+    *screen = tmp_screen;
+  if (x)
+    *x = tmp_x;
+  if (y)
+    *y = tmp_y;
+}
+
 /**
  * gdk_device_get_history:
  * @device: a #GdkDevice
index ef142eb28a9e135f26c1a293e79c9acf7322079e..ecce89a338e7cd1f4c853dfec285ebf0a82f1f2f 100644 (file)
@@ -189,6 +189,10 @@ void     gdk_device_get_state    (GdkDevice         *device,
                                   GdkWindow         *window,
                                   gdouble           *axes,
                                   GdkModifierType   *mask);
+void     gdk_device_get_position (GdkDevice         *device,
+                                  GdkScreen        **screen,
+                                  gint              *x,
+                                  gint              *y);
 gboolean gdk_device_get_history  (GdkDevice         *device,
                                   GdkWindow         *window,
                                   guint32            start,
index a3dd0686748344fc02c19323ec9d25a7da4e11e1..e7f7fc57e80f221179ab09e34558e0ccd0b3bfb5 100644 (file)
@@ -696,48 +696,6 @@ _gdk_display_enable_motion_hints (GdkDisplay *display,
     }
 }
 
-/**
- * gdk_display_get_device_state:
- * @display: a #GdkDisplay.
- * @device: pointer device to query status about.
- * @screen: (out) (transfer none) (allow-none): location to store the #GdkScreen
- *          the @device is on, or %NULL.
- * @x: (out) (allow-none): location to store root window X coordinate of @device, or %NULL.
- * @y: (out) (allow-none): location to store root window Y coordinate of @device, or %NULL.
- * @mask: (out) (allow-none): location to store current modifier mask for @device, or %NULL.
- *
- * Gets the current location and state of @device for a given display.
- *
- * Since: 3.0
- **/
-void
-gdk_display_get_device_state (GdkDisplay       *display,
-                              GdkDevice        *device,
-                              GdkScreen       **screen,
-                              gint             *x,
-                              gint             *y,
-                              GdkModifierType  *mask)
-{
-  GdkScreen *tmp_screen;
-  gint tmp_x, tmp_y;
-  GdkModifierType tmp_mask;
-
-  g_return_if_fail (GDK_IS_DISPLAY (display));
-  g_return_if_fail (GDK_IS_DEVICE (device));
-  g_return_if_fail (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD);
-
-  display->device_hooks->get_device_state (display, device, &tmp_screen, &tmp_x, &tmp_y, &tmp_mask);
-
-  if (screen)
-    *screen = tmp_screen;
-  if (x)
-    *x = tmp_x;
-  if (y)
-    *y = tmp_y;
-  if (mask)
-    *mask = tmp_mask;
-}
-
 /**
  * gdk_display_get_window_at_device_position:
  * @display: a #GdkDisplay.
@@ -822,7 +780,7 @@ gdk_display_set_device_hooks (GdkDisplay                  *display,
  *
  * Since: 2.2
  *
- * Deprecated: 3.0: Use gdk_display_get_device_state() instead.
+ * Deprecated: 3.0: Use gdk_device_get_position() instead.
  **/
 void
 gdk_display_get_pointer (GdkDisplay      *display,
@@ -831,9 +789,26 @@ gdk_display_get_pointer (GdkDisplay      *display,
                         gint            *y,
                         GdkModifierType *mask)
 {
+  GdkScreen *tmp_screen;
+  gint tmp_x, tmp_y;
+  GdkModifierType tmp_mask;
+
   g_return_if_fail (GDK_IS_DISPLAY (display));
 
-  gdk_display_get_device_state (display, display->core_pointer, screen, x, y, mask);
+  /* We call get_device_state here manually instead of gdk_device_get_position()
+   * because we also care about the modifier mask */
+
+  display->device_hooks->get_device_state (display,
+                                           display->core_pointer,
+                                           &tmp_screen, &tmp_x, &tmp_y, &tmp_mask);
+  if (screen)
+    *screen = tmp_screen;
+  if (x)
+    *x = tmp_x;
+  if (y)
+    *y = tmp_y;
+  if (mask)
+    *mask = tmp_mask;
 }
 
 static GdkWindow *
index bda19c2b77be4e189908c55c532be4a3964c7981..100b9c37e18a1a9b321afdcd3cfbc0d2f7fed683 100644 (file)
@@ -191,12 +191,6 @@ GdkDisplayPointerHooks *gdk_display_set_pointer_hooks (GdkDisplay
 #endif /* GDK_DISABLE_DEPRECATED */
 #endif /* GDK_MULTIDEVICE_SAFE */
 
-void             gdk_display_get_device_state              (GdkDisplay            *display,
-                                                            GdkDevice             *device,
-                                                            GdkScreen            **screen,
-                                                            gint                  *x,
-                                                            gint                  *y,
-                                                            GdkModifierType       *mask);
 GdkWindow *      gdk_display_get_window_at_device_position (GdkDisplay            *display,
                                                             GdkDevice             *device,
                                                             gint                  *win_x,
index 8f90a8911e012db800c210ee22ad273a84f09acb..b6a4e4e98cbaa48f0ea4e291896dbef8616be069 100644 (file)
@@ -1804,7 +1804,6 @@ key_press (GtkWidget   *invisible,
            GdkEventKey *event,
            gpointer     data)
 {  
-  GdkDisplay *display = gtk_widget_get_display (invisible);
   GdkScreen *screen = gdk_event_get_screen ((GdkEvent *) event);
   GdkDevice *device, *pointer_device;
   guint state = event->state & gtk_accelerator_get_default_mod_mask ();
@@ -1813,7 +1812,7 @@ key_press (GtkWidget   *invisible,
 
   device = gdk_event_get_device ((GdkEvent * ) event);
   pointer_device = gdk_device_get_associated_device (device);
-  gdk_display_get_device_state (display, pointer_device, NULL, &x, &y, NULL);
+  gdk_device_get_position (pointer_device, NULL, &x, &y);
 
   dx = 0;
   dy = 0;
index 48d726bc95fafd8b541ead27f2cae6dea3b4e5c7..bb90456026911bcd7d0009c627770715609b177c 100644 (file)
@@ -2415,8 +2415,7 @@ gtk_drag_begin_internal (GtkWidget         *widget,
     }
   else
     {
-      gdk_display_get_device_state (gtk_widget_get_display (widget), pointer,
-                                    &info->cur_screen, &info->cur_x, &info->cur_y, NULL);
+      gdk_device_get_position (pointer, &info->cur_screen, &info->cur_x, &info->cur_y);
     }
 
   g_signal_emit_by_name (widget, "drag-begin", info->context);
@@ -4160,10 +4159,7 @@ gtk_drag_motion_cb (GtkWidget      *widget,
 
   if (event->is_hint)
     {
-      GdkDisplay *display = gtk_widget_get_display (widget);
-
-      gdk_display_get_device_state (display, event->device,
-                                    &screen, &x_root, &y_root, NULL);
+      gdk_device_get_position (event->device, &screen, &x_root, &y_root);
       event->x_root = x_root;
       event->y_root = y_root;
     }
index 0c2ca5051f683cb8c0c312022ec8aa2951e43513..ef458d4d0f9a38bf8084f6028d37c227f327922d 100644 (file)
@@ -1236,10 +1236,9 @@ gtk_handle_box_motion (GtkWidget      *widget,
   new_x = 0;
   new_y = 0;
   screen = gtk_widget_get_screen (widget);
-  gdk_display_get_device_state (gdk_screen_get_display (screen),
-                                event->device,
-                                &pointer_screen,
-                                &new_x, &new_y, NULL);
+  gdk_device_get_position (event->device,
+                           &pointer_screen,
+                           &new_x, &new_y);
   if (pointer_screen != screen)
     {
       new_x = priv->orig_x;
index 67f3083d46ff2c906a160bc0bc9528a108986d52..cb203e8d044dac36ee021d0cecf4ec77117fab27 100644 (file)
@@ -4497,8 +4497,7 @@ gtk_menu_position (GtkMenu  *menu,
 
   screen = gtk_widget_get_screen (widget);
   pointer = _gtk_menu_shell_get_grab_device (GTK_MENU_SHELL (menu));
-  gdk_display_get_device_state (gdk_screen_get_display (screen),
-                                pointer, &pointer_screen, &x, &y, NULL);
+  gdk_device_get_position (pointer, &pointer_screen, &x, &y);
 
   /* Get the minimum height for minimum width to figure out
    * the right place to popup the menu.
index ee8f4517f5e2322524ca4dc8d032b994fe39e3fa..742662de90ca7addcd4f1734ac5fc38df6f68dbb 100644 (file)
@@ -3596,9 +3596,8 @@ gtk_notebook_drag_failed (GtkWidget      *widget,
       gint x, y;
 
       display = gtk_widget_get_display (widget);
-      gdk_display_get_device_state (gtk_widget_get_display (widget),
-                                    gdk_drag_context_get_device (context),
-                                    NULL, &x, &y, NULL);
+      gdk_device_get_position (gdk_drag_context_get_device (context),
+                               NULL, &x, &y);
 
       g_signal_emit (notebook, notebook_signals[CREATE_WINDOW], 0,
                      priv->detached_tab->child, x, y, &dest_notebook);
index c21e0d396323540addd58cb018e4961a8606a732..78a2a62bf5c930ca3ed32d750611a6b3bfe180f6 100644 (file)
@@ -6316,9 +6316,9 @@ get_monitor_containing_pointer (GtkWindow *window)
   device_manager = gdk_display_get_device_manager (display);
   pointer = gdk_device_manager_get_client_pointer (device_manager);
 
-  gdk_display_get_device_state (display, pointer,
-                                &pointer_screen,
-                                &px, &py, NULL);
+  gdk_device_get_position (pointer,
+                           &pointer_screen,
+                           &px, &py);
 
   if (pointer_screen == window_screen)
     monitor_num = gdk_screen_get_monitor_at_point (pointer_screen, px, py);
@@ -6518,9 +6518,9 @@ gtk_window_compute_configure_request (GtkWindow    *window,
             device_manager = gdk_display_get_device_manager (display);
             pointer = gdk_device_manager_get_client_pointer (device_manager);
 
-            gdk_display_get_device_state (display, pointer,
-                                          &pointer_screen,
-                                          &px, &py, NULL);
+            gdk_device_get_position (pointer,
+                                     &pointer_screen,
+                                     &px, &py);
 
             if (pointer_screen == screen)
               monitor_num = gdk_screen_get_monitor_at_point (screen, px, py);